package mao.thinkinjava.array;

public class TestGenerator {
    public  void test(Class<?> generatorsClass){
        //generatorsClass 也算是一个对象，所以他也可以getClass，结果就是class java.lang.Class
        //可以这么理解Class是JDK里面的一个类，这个类的对象可以容纳别的类的字节码，Class类本身就有字节码。
//        Class<Class> aClass = (Class<Class>) generatorsClass.getClass();
//        System.out.println(aClass);
        Class<?>[] classes = generatorsClass.getClasses();
        for(Class clazz : classes){
            try {
                Generator<?> gen = (Generator<?>)clazz.newInstance();
                System.out.println(gen.getClass());
                for(int i=0;i<10;i++){
                    Object generated = gen.generate();
                    System.out.println(generated);
                }
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        new TestGenerator().test(RandomGenerator.class);
    }
}
